package com.example.demotest.entity;


import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;

import java.io.Serializable;

/**
 * 
 * @TableName aa
 */
@Data
public class Aa implements Serializable {


    /**
     * 
     */
//    @JSONField(name = "peer_count")
//    @TableField(value = "FramedIPAddress")
    private String acctStatusType;

    /**
     *
     */
    private String acctSessionId;

    /**
     *
     */
    private String userName;

    /**
     *
     */
//    @TableField(value = "FramedIPAddress")
    private String framedIPAddress;

    /**
     *
     */
//    @TableField(value = "FramedIPv6Prefix")
    private String framedIPv6Prefix;

    /**
     *
     */
//    @TableField(value = "CallingStationId")
    private String callingStationId;

    /**
     *
     */
//    @TableField(value = "NASIPAddress")
    private String NASIPAddress;

    /**
     *
     */
//    @TableField(value = "EventTimestamp")
    private String eventTimestamp;

    /**
     *
     */
//    @TableField(value = "TmpString9")
    private String tmpString9;

    /**
     *
     */
//    @TableField(value = "AcctUniqueSessionId")
    @JSONField(name = "Acct-Unique-Session-Id")
    private String acctUniqueSessionId;

    /**
     *
     */
//    @TableField(value = "Timestamp")
    private String timestamp;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        Aa other = (Aa) that;
        return  (this.getAcctStatusType() == null ? other.getAcctStatusType() == null : this.getAcctStatusType().equals(other.getAcctStatusType()))
            && (this.getAcctSessionId() == null ? other.getAcctSessionId() == null : this.getAcctSessionId().equals(other.getAcctSessionId()))
            && (this.getUserName() == null ? other.getUserName() == null : this.getUserName().equals(other.getUserName()))
            && (this.getFramedIPAddress() == null ? other.getFramedIPAddress() == null : this.getFramedIPAddress().equals(other.getFramedIPAddress()))
            && (this.getFramedIPv6Prefix() == null ? other.getFramedIPv6Prefix() == null : this.getFramedIPv6Prefix().equals(other.getFramedIPv6Prefix()))
            && (this.getCallingStationId() == null ? other.getCallingStationId() == null : this.getCallingStationId().equals(other.getCallingStationId()))
            && (this.getNASIPAddress() == null ? other.getNASIPAddress() == null : this.getNASIPAddress().equals(other.getNASIPAddress()))
            && (this.getEventTimestamp() == null ? other.getEventTimestamp() == null : this.getEventTimestamp().equals(other.getEventTimestamp()))
            && (this.getTmpString9() == null ? other.getTmpString9() == null : this.getTmpString9().equals(other.getTmpString9()))
            && (this.getAcctUniqueSessionId() == null ? other.getAcctUniqueSessionId() == null : this.getAcctUniqueSessionId().equals(other.getAcctUniqueSessionId()))
            && (this.getTimestamp() == null ? other.getTimestamp() == null : this.getTimestamp().equals(other.getTimestamp()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getAcctStatusType() == null) ? 0 : getAcctStatusType().hashCode());
        result = prime * result + ((getAcctSessionId() == null) ? 0 : getAcctSessionId().hashCode());
        result = prime * result + ((getUserName() == null) ? 0 : getUserName().hashCode());
        result = prime * result + ((getFramedIPAddress() == null) ? 0 : getFramedIPAddress().hashCode());
        result = prime * result + ((getFramedIPv6Prefix() == null) ? 0 : getFramedIPv6Prefix().hashCode());
        result = prime * result + ((getCallingStationId() == null) ? 0 : getCallingStationId().hashCode());
        result = prime * result + ((getNASIPAddress() == null) ? 0 : getNASIPAddress().hashCode());
        result = prime * result + ((getEventTimestamp() == null) ? 0 : getEventTimestamp().hashCode());
        result = prime * result + ((getTmpString9() == null) ? 0 : getTmpString9().hashCode());
        result = prime * result + ((getAcctUniqueSessionId() == null) ? 0 : getAcctUniqueSessionId().hashCode());
        result = prime * result + ((getTimestamp() == null) ? 0 : getTimestamp().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", acctStatusType=").append(acctStatusType);
        sb.append(", acctSessionId=").append(acctSessionId);
        sb.append(", userName=").append(userName);
        sb.append(", framedIPAddress=").append(framedIPAddress);
        sb.append(", framedIPv6Prefix=").append(framedIPv6Prefix);
        sb.append(", callingStationId=").append(callingStationId);
        sb.append(", NASIPAddress=").append(NASIPAddress);
        sb.append(", eventTimestamp=").append(eventTimestamp);
        sb.append(", tmpString9=").append(tmpString9);
        sb.append(", acctUniqueSessionId=").append(acctUniqueSessionId);
        sb.append(", timestamp=").append(timestamp);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}